## Задача 1 Объявите класс CardCheck для проверки корректности информации на пластиковых картах. 

Этот класс должен иметь следующие методы:

* `check_card_number(number)` - проверяет строку с номером карты и возвращает булево значение `True`, если номер в верном формате и `False` - в противном случае.

> Формат номера следующий: XXXX-XXXX-XXXX-XXXX, где X - любая цифра (от 0 до 9).

* `check_name(name)` - проверяет строку name с именем пользователя карты. 

Возвращает булево значение `True`, если имя записано верно и `False` - в противном случае.

Формат имени: два слова (имя и фамилия) через пробел, записанные заглавными латинскими символами и цифрами. Например, `SERGEI BALAKIREV`.

Предполагается использовать класс `CardCheck` следующим образом:
```python
is_number = CardCheck.check_card_number("1234-5678-9012-0000")
is_name = CardCheck.check_name("SERGEI SERGEEV")
```

Для проверки допустимых символов в классе должен быть прописан атрибут:
```python
CHARS_FOR_NAME = ascii_lowercase.upper() + digits
```
Подумайте, как правильнее объявить методы `check_card_number` и `check_name` 

(декораторами `@classmethod` и `@staticmethod`).


## Задача 2 Объявите класс для мессенджера с именем Telegram. 

В этом классе должны быть следующие методы:

```python
add_message(msg) # добавление нового сообщения в список сообщений;
remove_message(msg) # удаление сообщения из списка;
set_like(msg) 
# поставить/убрать лайк для сообщения msg (т.е. изменить атрибут fl_like объекта msg: если лайка нет то он ставится, если уже есть, то убирается);
show_last_message(число) # отображение последних сообщений;
total_messages() # возвращает общее число сообщений.
```
Эти методы предполагается использовать следующим образом:

```python
msg = Message("Всем привет!")
Telegram.add_message(msg)
Telegram.add_message(Message("Это курс по Python ООП."))
Telegram.add_message(Message("Что вы о нем думаете?"))
Telegram.set_like(msg)
Telegram.remove_message(msg)
```